]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
barLevel: Return when trying to set value to already used value
authorverdre <verdre@v0yd.nl>
Sat, 2 Feb 2019 17:01:56 +0000 (18:01 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Sun, 28 Jul 2019 15:27:53 +0000 (17:27 +0200)
There are some cases (for example when tweening value changes), where
the level will be set to the same value it already is at. Avoid those
unnecessary repaints by checking whether the value is already used and
returning if it is.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/385

js/ui/barLevel.js

index 78aa0304896658731412a88bf347ad7f19af4944..ea295f1e8f1ada08b892416c73031568080d8515 100644 (file)
@@ -42,7 +42,12 @@ var BarLevel = class {
         if (isNaN(value))
             throw TypeError('The bar level value must be a number');
 
-        this._value = Math.max(Math.min(value, this._maxValue), 0);
+        value = Math.max(Math.min(value, this._maxValue), 0);
+
+        if (this._value == value)
+            return;
+
+        this._value = value;
         this.actor.queue_repaint();
     }
 
@@ -56,7 +61,12 @@ var BarLevel = class {
         if (isNaN(value))
             throw TypeError('The bar level max value must be a number');
 
-        this._maxValue = Math.max(value, 1);
+        value = Math.max(value, 1);
+
+        if (this._maxValue == value)
+            return;
+
+        this._maxValue = value;
         this._overdriveStart = Math.min(this._overdriveStart, this._maxValue);
         this.actor.queue_repaint();
     }
@@ -70,6 +80,10 @@ var BarLevel = class {
     set overdrive_start(value) {
         if (isNaN(value))
             throw TypeError('The overdrive limit value must be a number');
+
+        if (this._overdriveStart == value)
+            return;
+
         if (value > this._maxValue)
             throw new Error(`Tried to set overdrive value to ${value}, ` +
                 `which is a number greater than the maximum allowed value ${this._maxValue}`);